Detecting Bad Smells in Object Oriented Design Using Design Change Propagation Probability Matrix

نویسندگان

  • Ananda Rao
  • Narendar Reddy
چکیده

-Object oriented software systems are subject to frequent modifications either during development (iterative, agile software development) or software evolution. For such systems which have large number of classes, detection of design defects is a complex task. Bad smells are used to identify design defects in object oriented software design. Identification of bad smells allows us to apply appropriate refactorings to improve the quality of design. In existing bad smell detection systems, bad smells are generally detected using human intuition, and recently, people started developing quantitative methods. As human intuition is subjective, the quantitative methods to detect bad smells are effective as they do not include subjectivity (bias) and allows for automation. This paper proposes a quantitative method. The proposed quantitative method makes use of the concept design change propagation probability matrix (DCPP matrix) to detect two important bad smells. The first one is shotgun surgery bad smell and the other one is divergent change bad smell. Two of the advantages of the proposed quantitative method are: Detecting shotgun surgery and divergent change bad smells require that the design change propagation between artifacts that are connected directly and indirectly should be considered quantitatively. The proposed method considers this aspect quantitatively. The second advantage is, the method is amicable for automation. Using this proposed method, with typical example designs, the bad smells shotgun surgery and divergent change are detected. Appropriate refactorings are suggested for the detected bad smells. Different advantages of the proposed quantitative method are presented. A broader framework in which this quantitative method is applied is given.

منابع مشابه

Impacts and Detection of Design Smells Impacts and Detection of Design Smells

Changes are continuously made in the source code to take into account the needs of the customers and fix the faults. Continuous change can lead to antipatterns and code smells, collectively called “design smells” to occur in the source code. Design smells are poor solutions to recurring design or implementation problems, typically in object-oriented development. During comprehension and changes...

متن کامل

Can Software Faults be Analyzed using Bad Code Smells? : An Empirical Study

The design of software systems can exhibit several problems which can be either due to inefficient analysis and design during the initial construction of the software or more often, due to software ageing, where software quality degenerates over time. The design problems appear as "bad smells" at code or design level and the process of removing them is termed as Refactoring.. This paper present...

متن کامل

Detecting Bad Smells in AspectJ

This paper defines algorithms to automatically detect five types of bad smells that occur in aspect-oriented systems, more specifically those written using the AspectJ language. We provide a prototype implementation to evaluate the detection algorithms in a case study, where bad smells are detected in three well-known AspectJ systems.

متن کامل

Finding Bad Code Smells with Neural Network Models

Received May 4, 2017 Revised Jun 28, 2017 Accepted Jul 14, 2017 Code smell refers to any symptom introduced in design or implementation phases in the source code of a program. Such a code smell can potentially cause deeper and serious problems during software maintenance. The existing approaches to detect bad smells use detection rules or standards using a combination of different object-orient...

متن کامل

CrocoPat: Efficient Pattern Analysis in Object-Oriented Programs

In the comprehension process, the engineer has to identify structures which are important for the understanding of the design. These structures can be described by patterns. The most famous example for such patterns are the objectoriented design patterns [6], which represent good design solutions on a more abstract level, or anti-patterns, describing problematic program structures (cf. bad smel...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

متن کامل
عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2007